package com.own.component.util.time;

import com.own.constant.ConstantDateFormatPattern;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;

/**
 * LocalTimeUtil
 *
 * @author chenxueli
 * @date 2021/3/10 19:43
 */
public final class LocalTimeUtil {

    /**
     * 时间转换
     *
     * @param date 日期格式
     * @return 时间
     */
    public static LocalTime of(Date date) {
        var calendar = Calendar.getInstance();
        calendar.setTime(date);
        return LocalTime.of(calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND));
    }

    /**
     * 克隆时间
     *
     * @param time 被复制的对象
     * @return 复制后的对象
     */
    public static LocalTime copy(LocalTime time) {
        return LocalTime.of(time.getHour(), time.getMinute(), time.getSecond());
    }

    /**
     * 格式化时间
     *
     * @param date 时间
     * @return HH:mm:ss
     */
    public static String format(LocalTime date) {
        return format(date, ConstantDateFormatPattern.Pattern.HH_MM_SS);
    }

    /**
     * 格式化时间
     *
     * @param date      时间
     * @param formatter 格式
     * @return 格式化后的时间
     */
    public static String format(LocalTime date, String formatter) {
        return date.format(DateTimeFormatter.ofPattern(formatter));
    }

}
